package com.sqx.modules.goodsType.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sqx.modules.brand.entity.Brand;
import com.sqx.modules.goods.entity.Goods;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 *
 * 商品分类
 *
 * @author wuChang
 * @since 2024-05-30
 */
@Data
@TableName("goods_type")
public class GoodsType implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 分类id
     */
    @ApiModelProperty("分类id")
    @TableId(value = "type_id", type = IdType.AUTO)
    private Long typeId;

    /**
     * 标签id
     */
    @ApiModelProperty("标签id")
    private Long labelId;

    /**
     * 分类名称
     */
    @TableField(condition = SqlCondition.LIKE)
    @ApiModelProperty("分类名称")
    private String typeName;

    /**
     * 分类图片
     */
    @ApiModelProperty("分类图片")
    private String typeImg;

    /**
     * 是否启用 0否 1是
     */
    @ApiModelProperty("是否启用 0否 1是")
    private Integer isEnable;

    /**
     * 是否是回收类型 0否 1是
     */
    @ApiModelProperty("是否是回收类型 0否 1是")
    private Integer isRecovery;

    /**
     * 是否是商品分类 0否 1是
     */
    @ApiModelProperty("是否是商品分类 0否 1是")
    private Integer isType;
   /**
     * 是排序
     */
    @ApiModelProperty("排序")
    private Integer sort;
/**
     * 上级id
     */
    @ApiModelProperty("上级id")
    private Long parentId;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 分类列表
     */
    @TableField(exist = false)
    @ApiModelProperty("商品分类列表")
    private List<GoodsType> goodsTypeList;

    /**
     * 分类的父级列表
     */
    @TableField(exist = false)
    @ApiModelProperty("分类的父级列表，暂未使用")
    private List<GoodsType> goodsParentList;

    @TableField(exist = false)
    @ApiModelProperty("标签名称")
    private String labelName;

    /**
     * 商品品牌列表
     */
    @TableField(exist = false)
    @ApiModelProperty("商品品牌列表")
    private List<Brand> brands;

    /**
     * 商品列表
     */
    @TableField(exist = false)
    @ApiModelProperty("商品列表")
    public List<Goods> goodsList;

}
